// 2022年1月30日 19:23:16 chanchaw
// easyui utils

/**
 * 获取指定表格指定编辑行，指定字段的编辑器
 * 获得编辑器后可这样获取编辑器中的 value:
 * let amount = $(amountEditor.target).numberbox('getValue') || 0;
 * 可这样向编辑器中写入 value:
 * $(moneyEditor.target).numberbox('setValue', amount * price);
 * @param tableCtl 表格控件 ID
 * @param editRowIndex 处于编辑状态的行 index
 * @param fieldName 要获取的字段名称
 * @returns {jQuery} 返回编辑器
 */
function getGridEditor(tableCtl,editRowIndex,fieldName){
    return $(tableCtl).edatagrid('getEditor', {
        index: editRowIndex,
        field: fieldName
    });
}

// 获取表格当前选中行的第一行，如果没有则返回 null
function getTableSelectedFirstRow(tableId){
    return $(`#${tableId}`).datagrid('getSelected');
}

// 获取表格选中行构成的数组，没有则返回空数组
function getTableSelectedRows(tableId){
    return $(`#${tableId}`).datagrid('getSelections');
}

// 返回表格所有行
function getTableAllRows(tableId){
    return $(`#${tableId}`).edatagrid('getRows') || [];
}

// 表单中表格将选中行向上移动
function arrowUp(gridId) {
    let datagrid = $(`#${gridId}`);
    let selected = datagrid.datagrid('getSelected');
    let selectRowIndex = datagrid.datagrid('getRowIndex', selected);
    if (selectRowIndex > 0) {
        datagrid.datagrid('deleteRow', selectRowIndex);
        datagrid.datagrid('insertRow', {
            index: --selectRowIndex,
            row: selected
        });
        datagrid.datagrid('selectRow', selectRowIndex);
        resetIndex(datagrid, datagrid.datagrid('getRows') || []);
    } else {
        $.messager.alert('提示', '未选中', 'warning')
    }
}

// 表单中表格将选中行向下移动
function arrowDown(gridId) {
    let datagrid = $(`#${gridId}`);
    let selected = datagrid.datagrid('getSelected');
    let selectRowIndex = datagrid.datagrid('getRowIndex', selected);
    if (selectRowIndex < datagrid.datagrid('getRows').length - 1) {
        datagrid.datagrid('deleteRow', selectRowIndex);
        datagrid.datagrid('insertRow', {
            index: ++selectRowIndex,
            row: selected
        });
        datagrid.datagrid('selectRow', selectRowIndex);
        resetIndex(datagrid, datagrid.datagrid('getRows') || [])
    } else {
        $.messager.alert('提示', '未选中', 'warning')
    }
}